home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swags_z.zip / SCREEN.SWG / 0077_Screen grabber.pas < prev    next >
Pascal/Delphi Source File  |  1995-03-03  |  1KB  |  59 lines

  1. {
  2. RH>Is there a method to put a whole screen (640X480X16) in a
  3. RH>file.
  4. RH>I have tried to make a function but it only works with the
  5. RH>colors
  6. RH>black and white.
  7.  
  8. Here's some code:
  9. }
  10. procedure copy_screen(var f:file);
  11.  
  12. type data=array[0..65534] of byte;
  13.  
  14. Var p:^data;
  15.  
  16. begin
  17.    new(p); rewrite(f,1);
  18.    asm
  19.       mov es,0b800h
  20.       xor di,di
  21.       mov cx,32767^[B
  22.       push ds
  23.       lds si,[p]
  24.       cld
  25.       rep movsw
  26.       pop ds
  27.    end;
  28.    blockwrite(f,p^,65536);
  29.    asm
  30.       mov es,0b801h
  31.       xor di,di
  32.       mov cx,32767
  33.       push ds
  34.       lds si,[p]
  35.       cld
  36.       rep movsw
  37.       pop ds
  38.    end;
  39.    blockwrite(f,p^,65536);
  40.    asm
  41.       mov es,0b802h
  42.       xor di,di
  43.       mov cx,11263
  44.       push ds
  45.       lds si,[p]
  46.       cld
  47.       rep movsw
  48.       pop ds
  49.    end;
  50.    blockwrite(f,p^,11264);
  51.    close(f);
  52.    dispose(p);
  53. end;
  54.  
  55. Now there is a chance that I've screwed up somewhere, so if this doesn't work
  56. right let me know, also let me know if you want a routine to read a screen back
  57. into video memory.  Good Luck!
  58. John Baldwin
  59.